//最长公共子序列
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN=200;
char a[MAXN+10],b[MAXN+10];
int maxlen[MAXN+10][MAXN+10];

int main(){
    cin>>a>>b;
    int la=strlen(a);
    int lb=strlen(b);
    
    //边界：maxlen[0][j]均为0，全局数组初始化即可
    for(int i=1;i<=la;i++)
        for(int j=1;j<=lb;j++){
            if (a[i-1]==b[j-1]) maxlen[i][j]=maxlen[i-1][j-1]+1;
            else {
                maxlen[i][j]=max(maxlen[i-1][j],maxlen[i][j-1]);
            }
        }
    cout<<maxlen[la][lb];

}